| Автор перевода: Майкл "Antares" Клишин | Предыдущая | Следующая | Оглавление |
Flash Player 7.
my_mc._lockroot:Boolean
Свойство; определяет, на что ссылкается ключевое слово _root при загрузке внешнего SWF файла в мувиклип. По умолчанию свойство _lockroot имеет значение undefined. Вы можете задавать это свойство в загружаемом SWF файле или обработчике события, связанном с мувиклипом, в который производится загрузка.
Например, представьте, что у вас есть документ Games.fla, позволяющий пользователю выбрать игру, а затем загружающий ее (например, Chess.swf) в мувиклип game_mc. Вы хотите быть уверены в том, что слово _root, используемое в Chess.swf, все так же ссылается на _root в файле Chess.swf после загрузки в Games.swf. Если у вас есть доступ к исходному Chess.fla и Вы готовы опубликовать его для Flash Player 7 или более поздней версии, Вы можете добавить следующую строку на главный Таймлайн Chess.fla:
this._lockroot = true;
Если у вас нет доступа к Chess.fla (например, вы загружаете Chess.swf в chess_mc со стороннего сайта), Вы можете установить его свойство _lockroot после загрузки, как показано ниже. В этом случае, Chess.swf может быть опубликован для любой версии Flash Player, при условии, что Games.swf опубликован для Flash Player 7 или более поздней версии. Добавьте следующий код на главный Таймлайн:
chess_mc._lockroot = true;
При вызове loadMovie() присвойте свойству MovieClip._lockroot значение true в ролике, куда производится загрузка, как показано ниже. Если этого не сделать, ролик, в который происходит загрузка, будет иметь доступ только к своей собственной Бибилиотеке, но не к Библиотеке загруженного ролика:
myMovieClip._lockroot = true;
В примере ниже, в lockroot.fla свойство _lockroot определено на главном Таймлайне SWF файла. Если ролик будет загружен в другой, _root всегда будет ссылаться на основной Таймлайн lockroot.swf, что позволяет избежать конфликтов. Добавьте следующий код на главный Таймлайн lockroot.fla.
this._lockroot = true;
_root.myVar = 1;
_root.myOtherVar = 2;
trace("Из lockroot.swf");
for (i in _root) {
trace(" "+i+" -> "+_root[i]);
}
trace("");
Будет выведено следующее:
Из lockroot.swf myOtherVar -> 2 myVar -> 1 _lockroot -> true $version -> WIN 7,0,19,0
В примере ниже загружаются два SWF файла, lockroot.swf и nolockroot.swf. Документ lockroot.fla содержит код из предыдущего примера. Файл nolockroot.fla имеет в первом кадре главного Таймлайна следующий код:
_root.myVar = 1;
_root.myOtherVar = 2;
trace("Из nolockroot.swf");
for (i in _root) {
trace(" "+i+" -> "+_root[i]);
}
trace("");
В ролике lockroot.swf свойство _lockroot определено на главном Таймлайне, а в nolockroot.swf — нет. После загрузки файлов, каждый файл выводит переменные из _root. Поместите следующий код на главный Таймлайн третьего документа:
this.createEmptyMovieClip("lockroot_mc", this.getNextHighestDepth());
lockroot_mc.loadMovie("lockroot.swf");
this.createEmptyMovieClip("nolockroot_mc", this.getNextHighestDepth());
nolockroot_mc.loadMovie("nolockroot.swf");
function dumpRoot() {
trace("Из текущего SWF файла");
for (i in _root) {
trace(" "+i+" -> "+_root[i]);
}
trace("");
}
dumpRoot();
Будет выведено следующее:
Из текущего SWF файла dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from nolockroot.swf myVar -> 1 i -> lockroot_mc dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc Из lockroot.swf myOtherVar -> 2 myVar -> 1
Файл без определенного на главном Таймлайне свойства _lockroot содержит также все переменные с главного Таймлайна ролика-родителя. Если у вас нет доступа к nolockroot.fla, Вы можете изменить свойство _lockroot из главного ролика:
this.createEmptyMovieClip("nolockroot_mc", this.getNextHighestDepth());
nolockroot_mc._lockroot = true;
nolockroot_mc.loadMovie("nolockroot.swf");
Будет выведено следующее:
from current SWF file dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from nolockroot.swf myOtherVar -> 2 myVar -> 1 from lockroot.swf myOtherVar -> 2 myVar -> 1
MovieClip.attachMovie(), MovieClip.loadMovie(), MovieClipLoader.onLoadInit, _root, и "О загрузке компонентов" в Использовании компонентов .
| Посмотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |